题目描述:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
具体代码如下:
#include<stdio.h>
int main()
{
//有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
int i,j,k;
printf("\n");
for(i=1;i<5;i++) { // 以下为三重循环,百位
for(j=1;j<5;j++) {//十位
for (k=1;k<5;k++) { // 个位
if (i!=k&&i!=j&&j!=k) {//确保i、j、k三位互不相同
printf("%d%d%d ",i,j,k);
}
}
}
}
printf("\n");
}
具体运行结果如下:
注:如果此时给定的几个数中包含“0”的情况下,我们的百位不能放“0”,否则就成了两位数,解决方法如下:
#include<stdio.h>
int main()
{ //1,2,3,0
int m=0;
for(int i=1;i<4;i++){
for(int j=0;j<4;j++){
for(int k=0;k<4;k++){
if(i!=j&&j!=k&&i!=k){
m++;
printf("第%d个数字为:",m);
printf("%d,%d,%d\n",i,j,k);
}
}
}
}
}
输出结果为:
此处采用的是对i,j,k的循环取值范围进行规定,读者如果仔细阅读会发现,循环的差异性,此处i,j,k分别表示的是i——百位,j——十位,k——个位。
欢迎各位读者阅读,还请多多支持和提出意见!